--[[ 编码: WMS-04-11 名称: 货位-查询面板-查询 作者:HAN 日期:2025-1-29 级别:固定 (说明本段代码在项目中不太会变化) 函数: Query 功能: 根据查询面板里的输入,组成SQL的查询条件 更改记录: 加了一个货位查询,自定义表单也加了对应的查询条件 --]] json = require ("json") mobox = require ("OILua_JavelinExt") m3 = require("oi_base_mobox") function Query ( strLuaDEID ) local nRet, strRetInfo local parameter = {} local attrs -- 获取查询面板里的输入属性 nRet, attrs = m3.GetSysInputParameter( strLuaDEID ) if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "m3.GetSysInputParameter 失败! "..attrs ) end parameter = m3.KeyValueAttrsToObjAttr( attrs ) local wh_code = lua.Get_StrAttrValue( parameter.S_WH_CODE ) local area_code = lua.Get_StrAttrValue( parameter.S_AREA_CODE ) local aisle = lua.Get_NumAttrValue( parameter.Aisle ) local row = lua.Get_NumAttrValue( parameter.Row ) local empty_full = lua.Get_StrAttrValue( parameter.EmptyFull ) local code = lua.Get_StrAttrValue(parameter.S_CODE)--货位查询 local lock = lua.Get_StrAttrValue( parameter.LockState ) local strSQL = '' if ( wh_code ~= '' ) then strSQL = "S_WH_CODE = '"..wh_code.."'" end if ( area_code ~= '' ) then if ( strSQL ~= '' ) then strSQL = strSQL.." AND " end strSQL = strSQL.."S_AREA_CODE = '"..area_code.."'" end if ( code ~= '' ) then if ( strSQL ~= '' ) then strSQL = strSQL.." AND " end strSQL = strSQL.."S_CODE = '"..code.."'" end if ( aisle > 0 ) then if ( strSQL ~= '' ) then strSQL = strSQL.." AND " end strSQL = strSQL.."N_AISLE = "..aisle end if ( row > 0 ) then if ( strSQL ~= '' ) then strSQL = strSQL.." AND " end strSQL = strSQL.."N_ROW = "..row end -- 生成空满状态查询 local sub_condition = '' if ( empty_full == '空') then sub_condition = "N_CURRENT_NUM = 0 " elseif ( empty_full == '满') then sub_condition = "N_CURRENT_NUM = N_CAPACITY " elseif ( empty_full == '未满') then sub_condition = "N_CURRENT_NUM < N_CAPACITY " end if ( sub_condition ~= '' ) then if ( strSQL ~= '' ) then strSQL = strSQL.." AND " end strSQL = strSQL..sub_condition end -- 生成锁状态查询 sub_condition = '' if ( lock == '无') then sub_condition = "N_LOCK_STATE = 0 " elseif ( lock == '入库锁') then sub_condition = "N_LOCK_STATE = 1 " elseif ( lock == '出库锁') then sub_condition = "N_LOCK_STATE = 2 " elseif ( lock == '其它') then sub_condition = "N_LOCK_STATE = 3 " end if ( sub_condition ~= '' ) then if ( strSQL ~= '' ) then strSQL = strSQL.." AND " end strSQL = strSQL..sub_condition end -- 设置查询条件 local action = {} action[1] = { action_type = "set_query_condition", value = { condition = strSQL, order = "S_CODE" } } nRet, strRetInfo = mobox.setAction( strLuaDEID, lua.table2str( action ) ) if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "setAction失败! "..strRetInfo..' action = '..strAction ) end end